package com.relytosoft.mizar.media.analyze.api.pojo.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @Author: zyc
 * @version: v1.0
 * @description: com.relytosoft.mizar.analyze.structure.api.pojo.dto
 * @Date: 2022/5/18 17:02
 */
@ApiModel("AyStructureDispositionDto")
public class AyStructureDispositionDto implements Serializable {
    private static final long serialVersionUID = 1957734719270178991L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Integer id;
    /**
     * 布控任务名称
     */
    @ApiModelProperty(value = "布控任务名称", required = true)
    @NotBlank(message = "布控任务名称不能为空")
    private String name;

    /**
     * 布控类型;1：条件（文本）,2：图片,3：车辆库
     */
    @ApiModelProperty(value = "布控类型;1：条件（文本），2：图片3：车辆库", required = true)
    @NotNull(message = "布控类型;1：条件（文本），2：图片，3：车辆库;不能为空")
    private Integer dispositionType;

    /**
     * 布控方式;1-人/2-机动车/3-非机动车
     */
    @ApiModelProperty(value = "布控方式;1-人,2-机动车,3-非机动车", required = true)
    @NotNull(message = "布控方式;1-人,2-机动车,3-非机动车;不能为空")
    private Integer dispositionCategory;

    /**
     * 布控设备;多个以英文分号隔开
     */
    @ApiModelProperty(value = "布控设备;多个以英文分号隔开", required = true)
    @NotBlank(message = "布控设备;多个以英文分号隔开不能为空")
    private String dispositionRangeDevice;

    /**
     * 布控-文本条件;json字符串
     */
    @ApiModelProperty(value = "布控-文本条件;json字符串")
    private String dispositionText;

    /**
     * 布控-图片特征值
     */
    @ApiModelProperty(value = "布控-图片特征值")
    private String dispositionImage;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 车辆库;多个以英文分号隔开
     */
    @ApiModelProperty(value = "车辆库;多个以英文分号隔开")
    private String vehicleGroup;

    /**
     * 临时车辆库;多个以英文分号隔开
     */
    @ApiModelProperty(value = "临时车辆库;多个以英文分号隔开")
    private String tempVehicleGroup;

    /**
     * 临时名单生效开始时间
     */
    @ApiModelProperty(value = "临时名单生效开始时间")
    private String tempBeginTime;

    /**
     * 临时名单生效结束时间
     */
    @ApiModelProperty(value = "临时名单生效结束时间")
    private String tempEndTime;

    /**
     * 布控图片ID
     */
    @ApiModelProperty(value = "布控图片ID")
    private Integer imageId;

    /**
     * 布控图片地址
     */
    @ApiModelProperty(value = "布控图片地址")
    private String imageUrl;

    /**
     * 相似度
     */
    @ApiModelProperty(value = "相似度")
    private String threshold;

    /**
     * 计划类型;0：周计划  1：日计划（周一到周日计划相同） 2：全天
     */
    @ApiModelProperty(value = "计划类型;0：周计划 1：日计划（周一到周日计划相同） 2：全天")
    private Integer planType;

    /**
     * 计划信息条数;取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    @ApiModelProperty(value = "计划信息条数;取值范围如下： 周计划时：1～7 日计划时：1 全天：0")
    private Integer planInfoNum;

    /**
     * 计划信息列表;(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    @ApiModelProperty(value = "计划信息列表;(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息")
    private String planInfoList;


    @ApiModelProperty(value = "告警方式;0-未命中告警(白名单) 1-命中告警(黑名单)车辆库布控时使用")
    private Integer alarmType;

    @ApiModelProperty(value = "模板，暂时可用，后期需要取消该字段")
    private Integer planTemplateId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPlanTemplateId() {
        return planTemplateId;
    }

    public void setPlanTemplateId(Integer planTemplateId) {
        this.planTemplateId = planTemplateId;
    }

    /**
     * 获得布控任务名称
     */
    public String getName(){
        return this.name;
    }
    /**
     * 设置布控任务名称
     */
    public void setName(String name){
        this.name = name;
    }

    /**
     * 获得布控类型;1：条件（文本），2：图片 3：车辆库
     */
    public Integer getDispositionType(){
        return this.dispositionType;
    }
    /**
     * 设置布控类型;1：条件（文本），2：图片 3：车辆库
     */
    public void setDispositionType(Integer dispositionType){
        this.dispositionType = dispositionType;
    }

    /**
     * 获得布控方式;人/机动车/非机动车
     */
    public Integer getDispositionCategory(){
        return this.dispositionCategory;
    }
    /**
     * 设置布控方式;人/机动车/非机动车
     */
    public void setDispositionCategory(Integer dispositionCategory){
        this.dispositionCategory = dispositionCategory;
    }

    /**
     * 获得布控范围视频源;多个以英文分号隔开
     */
    public String getDispositionRangeDevice(){
        return this.dispositionRangeDevice;
    }
    /**
     * 设置布控范围视频源;多个以英文分号隔开
     */
    public void setDispositionRangeDevice(String dispositionRangeDevice){
        this.dispositionRangeDevice = dispositionRangeDevice;
    }


    /**
     * 获得布控-文本条件;json字符串
     */
    public String getDispositionText(){
        return this.dispositionText;
    }
    /**
     * 设置布控-文本条件;json字符串
     */
    public void setDispositionText(String dispositionText){
        this.dispositionText = dispositionText;
    }

    /**
     * 获得布控-图片条件;json字符串
     */
    public String getDispositionImage(){
        return this.dispositionImage;
    }
    /**
     * 设置布控-图片条件;json字符串
     */
    public void setDispositionImage(String dispositionImage){
        this.dispositionImage = dispositionImage;
    }

    /**
     * 获得备注
     */
    public String getRemark(){
        return this.remark;
    }
    /**
     * 设置备注
     */
    public void setRemark(String remark){
        this.remark = remark;
    }

    /**
     * 获得车辆库;多个以英文分号隔开
     */
    public String getVehicleGroup(){
        return this.vehicleGroup;
    }
    /**
     * 设置车辆库;多个以英文分号隔开
     */
    public void setVehicleGroup(String vehicleGroup){
        this.vehicleGroup = vehicleGroup;
    }

    /**
     * 获得临时车辆库;多个以英文分号隔开
     */
    public String getTempVehicleGroup(){
        return this.tempVehicleGroup;
    }
    /**
     * 设置临时车辆库;多个以英文分号隔开
     */
    public void setTempVehicleGroup(String tempVehicleGroup){
        this.tempVehicleGroup = tempVehicleGroup;
    }

    /**
     * 获得临时名单生效开始时间
     */
    public String getTempBeginTime(){
        return this.tempBeginTime;
    }
    /**
     * 设置临时名单生效开始时间
     */
    public void setTempBeginTime(String tempBeginTime){
        this.tempBeginTime = tempBeginTime;
    }

    /**
     * 获得临时名单生效结束时间
     */
    public String getTempEndTime(){
        return this.tempEndTime;
    }
    /**
     * 设置临时名单生效结束时间
     */
    public void setTempEndTime(String tempEndTime){
        this.tempEndTime = tempEndTime;
    }


    /**
     * 获得布控图片ID
     */
    public Integer getImageId(){
        return this.imageId;
    }
    /**
     * 设置布控图片ID
     */
    public void setImageId(Integer imageId){
        this.imageId = imageId;
    }

    /**
     * 获得布控图片地址
     */
    public String getImageUrl(){
        return this.imageUrl;
    }
    /**
     * 设置布控图片地址
     */
    public void setImageUrl(String imageUrl){
        this.imageUrl = imageUrl;
    }

    public String getThreshold() {
        return threshold;
    }

    public void setThreshold(String threshold) {
        this.threshold = threshold;
    }

    /**
     * 获得0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    public Integer getPlanType(){
        return this.planType;
    }
    /**
     * 设置0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    public void setPlanType(Integer planType){
        this.planType = planType;
    }

    /**
     * 获得取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    public Integer getPlanInfoNum(){
        return this.planInfoNum;
    }
    /**
     * 设置取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    public void setPlanInfoNum(Integer planInfoNum){
        this.planInfoNum = planInfoNum;
    }

    /**
     * 获得(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    public String getPlanInfoList(){
        return this.planInfoList;
    }
    /**
     * 设置(json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    public void setPlanInfoList(String planInfoList){
        this.planInfoList = planInfoList;
    }

    public Integer getAlarmType() {
        return alarmType;
    }

    public void setAlarmType(Integer alarmType) {
        this.alarmType = alarmType;
    }

    @Override
    public String toString() {
        return "AyStructureDispositionDto{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", dispositionType=" + dispositionType +
                ", dispositionCategory=" + dispositionCategory +
                ", dispositionRangeDevice='" + dispositionRangeDevice + '\'' +
                ", dispositionText='" + dispositionText + '\'' +
                ", dispositionImage='" + dispositionImage + '\'' +
                ", remark='" + remark + '\'' +
                ", vehicleGroup='" + vehicleGroup + '\'' +
                ", tempVehicleGroup='" + tempVehicleGroup + '\'' +
                ", tempBeginTime='" + tempBeginTime + '\'' +
                ", tempEndTime='" + tempEndTime + '\'' +
                ", imageId=" + imageId +
                ", imageUrl='" + imageUrl + '\'' +
                ", threshold='" + threshold + '\'' +
                ", planType=" + planType +
                ", planInfoNum=" + planInfoNum +
                ", planInfoList='" + planInfoList + '\'' +
                ", alarmType=" + alarmType +
                ", planTemplateId=" + planTemplateId +
                '}';
    }
}
